陣列屬於一種靜態的資料結構,而且他會具有以下幾種特性:
陣列其實像學校裡的置物櫃一樣,每個櫃子都有編好也都讓大家放置自己的物品,要找的時候只要依照外面的編號就可以快速找到。:.゚ヽ(*´∀`)ノ゚.:。
array宣告時通常以arraytype arrayname[position number]的方式呈現
而array若沒特別指定他的初始索引值是從0開始哦!!
也就是第一格為A[0]這樣的概念 (*゜ー゜)b
[宣告方法一] :
A:array[1..n] of item
起始位址=l₀
元素大小=d
則要計算A[i]之位置(location)的公式為:l₀+(i-1)*d
是不是覺得很眼熟哇 這其實跟我們小時候學的等差公式一樣歐٩(๑•̀ω•́๑)۶

[宣告方法二] :
A:array[l..u] of item 有u-l+1格
則A[i]之location = l₀+(i-l)*d

#include <iostream>
using namespace std;
int main(){
	int arraysize=10; //我們令這個陣列大小為10格
	int A[arraysize]; //宣告此一維陣列
	
	for(int i=0;i<arraysize;i++){
		A[i]=2+2*i;
		cout<<i<<":"<<A[i]<<endl;
	}
	
}
這樣我們就輕鬆製作出一個首項為2公差為2的陣列了(ノ◕ヮ◕)ノ*:・゚✧
做出來的解果:
[宣告方法一] :
A:array[1..m,1..n] of item
此為m列(Row),**n行(column)**之陣列
二維陣列在記憶體中的儲存方式有:
Row major
A[i,j]=l₀+[(i-1)*n+(j-1)]*d
Column major
A[i,j]=l₀+[(j-1)*m+(i-1)]*d
[宣告方法二] :
A:array[l₁..u₁,l₂..u₂] of item
此陣列有**(u₁-l₁+1)列(Row),(u₂-l₂+1)行(column)**
二維陣列在記憶體中的儲存方式有:
Row major
A[i,j]=l₀+[(i-l₁)*(u₂-l₂+1)+(j-l₂)]*d
Column major
A[i,j]=l₀+[(j-l₂)*(u₁-l₁+1)+(i-l₁)]*d
#include <iostream>
using namespace std;
int main(){
//Two dimension array:arraytype arrayname [Row][Column]
	int arraysize=4;
	int a[arraysize][arraysize];
	int number=1;
	
	//row major
	for(int i=0;i<arraysize;i++){
		for(int j=0;j<arraysize;j++){
			a[i][j]=number;
			number++;
			cout<<a[i][j]<<"\t";
		}cout<<endl;
	}cout<<endl;
	
	//column major
	int row=4;
	int column=4;
	int b[row][column];
	int num=1;
	for(int m=0;m<row;m++){
		for(int n=0;n<column;n++){
			b[m][n]=m+n*row+1;
			cout<<b[m][n]<<"\t";
		}
		cout<<endl;
	}
}
我們建立一個4*4的方陣來儲存1~16這些數字
以row major的方式儲存:
以column major的方式儲存:
只要是≥2維,他元素的儲存方式都有兩種:
A[1..u₁,1..u₂,1..u₃] of item 三維陣列
已知l₀,d
求A[i,j,k]之location
Row major
Column major
A[1..u₁,1..u₂,1..u₃,1..uₙ] of item
已知l₀,d
求A[i₁,i₂,i₃,...,iₙ]之location
Row major
Column major